//++++++++++++++++++++++++++++++++++++
// QuantV 3.0.0 shader
// Original code by Rockstar Games
//++++++++++++++++++++++++++++++++++++
ps_4_0
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb3[1], immediateIndexed
dcl_constantbuffer cb6[10], immediateIndexed
dcl_constantbuffer cb5[76], immediateIndexed
dcl_sampler s1, mode_default
dcl_sampler s4, mode_default
dcl_sampler s10, mode_default
dcl_sampler s15, mode_comparison
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t15
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyz
dcl_output o0.xyzw
dcl_temps 6
sample r0.xyzw, v1.xyxx, t4.xyzw, s4
min r0.x, r0.x, cb5[46].w
mul r0.yz, v0.xxyx, l(0.000000e+000, 3.333333e-001, 3.333333e-001, 0.000000e+000)
ge r1.xy, r0.yzyy, -r0.yzyy
frc r0.yz, |r0.yyzy|
movc r0.yz, r1.xxyx, r0.yyzy, -r0.yyzy
mul r0.yz, r0.yyzy, l(0.000000e+000, 3.000000e+000, 9.000000e+000, 0.000000e+000)
add r0.y, r0.z, r0.y
mad r0.z, r0.x, v2.z, cb1[15].z
mad r0.z, -cb5[47].x, l(6.000000e+000), r0.z
max r0.z, r0.z, l(0.000000e+000)
max r0.w, v2.z, l(1.000000e-004)
div r0.z, r0.z, r0.w
add r0.x, -r0.z, r0.x
max r0.x, r0.x, l(0.000000e+000)
mul r1.xyz, r0.xxxx, v2.xyzx
mul r1.xyz, r1.xyzx, l(5.882353e-002, 5.882353e-002, 5.882353e-002, 0.000000e+000)
mul r0.yzw, r0.yyyy, r1.xxyz
mul r0.yzw, r0.yyzw, l(0.000000e+000, 1.111111e-001, 1.111111e-001, 1.111111e-001)
dp3 r1.w, r1.xyzx, r1.xyzx
rsq r1.w, r1.w
mul r2.xyz, r1.wwww, r1.xyzx
dp3 r1.w, -cb3[0].xyzx, r2.xyzx
add r1.w, r1.w, l(1.000000e+000)
mul r1.w, r1.w, l(5.000000e-001)
mul r1.w, r1.w, r1.w
div r0.x, r0.x, cb5[46].w
mul r0.x, r1.w, r0.x
mul r2.xyz, r0.zzzz, cb6[1].xyzx
mad r2.xyz, r0.yyyy, cb6[0].xyzx, r2.xyzx
mad r0.yzw, r0.wwww, cb6[2].xxyz, r2.xxyz
mad r0.yzw, r0.yyzw, cb6[5].xxyz, cb6[9].xxyz
add r0.yzw, r0.yyzw, l(0.000000e+000, 5.000000e-001, 5.000000e-001, 0.000000e+000)
mul r2.xyz, r1.yyyy, cb6[1].xyzx
mad r1.xyw, r1.xxxx, cb6[0].xyxz, r2.xyxz
mad r1.xyz, r1.zzzz, cb6[2].xyzx, r1.xywx
mov r2.xyz, r0.yzwy
mov r1.w, l(0)
mov r2.w, l(0)
loop
  ige r3.x, r2.w, l(32)
  breakc_nz r3.x
  sample_c_lz r3.x, r2.xyxx, t15.xxxx, s15, r2.z
  add r1.w, r1.w, r3.x
  mad r2.xyz, r1.xyzx, cb6[5].xyzx, r2.xyzx
  iadd r2.w, r2.w, l(1)
endloop
mul r0.y, r1.w, l(3.125000e-002)
mul r0.y, r0.y, r0.y
mul r0.x, r0.x, r0.y
lt r0.y, l(0.000000e+000), cb5[75].z
log r0.z, r0.x
mul r0.z, r0.z, l(1.250000e-001)
exp r0.z, r0.z
movc r0.w, r0.y, r0.z, r0.x
eq r1.x, cb5[75].z, l(0.000000e+000)
if_nz r1.x
  and r1.xyz, r1.xxxx, cb5[46].xyzx
  mov r2.xyz, l(0,0,0,0)
  mov r1.w, l(-1)
  loop
    ilt r2.w, l(1), r1.w
    breakc_nz r2.w
    itof r3.y, r1.w
    mov r4.xyz, r2.xyzx
    mov r2.w, l(-1)
    loop
      ilt r3.z, l(1), r2.w
      breakc_nz r3.z
      itof r3.x, r2.w
      mad r3.xz, cb5[72].xxyx, r3.xxyx, v1.xxyx
      sample r5.xyzw, r3.xzxx, t10.xyzw, s10
      mad r4.xyz, r5.xyzx, l(1.111111e-001, 1.111111e-001, 1.111111e-001, 0.000000e+000), r4.xyzx
      iadd r2.w, r2.w, l(1)
    endloop
    mov r2.xyz, r4.xyzx
    iadd r1.w, r1.w, l(1)
  endloop
  sample r3.xyzw, l(0.000000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000), t1.xyzw, s1
  mul r3.xyz, r2.xyzx, r3.xxxx
  mul r3.xyz, r3.xyzx, cb5[8].wwww
  dp3 r1.w, r3.xyzx, l(3.333333e-001, 3.333333e-001, 3.333333e-001, 0.000000e+000)
  max r1.w, r1.w, l(1.000000e-009)
  add r2.w, r1.w, -cb5[7].x
  mul_sat r2.w, r2.w, cb5[7].z
  mul r2.w, r1.w, r2.w
  ne r3.xyz, r2.xyzx, r2.xyzx
  and r4.xyz, r2.xyzx, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0)
  ieq r4.xyz, r4.xyzx, l(0x7f800000, 0x7f800000, 0x7f800000, 0)
  or r3.xyz, r3.xyzx, r4.xyzx
  max r2.xyz, r2.xyzx, l(0.000000e+000, 0.000000e+000, 0.000000e+000, 0.000000e+000)
  div r1.w, r2.w, r1.w
  mul r2.xyz, r1.wwww, r2.xyzx
  movc r2.xyz, r3.xyzx, l(0,0,0,0), r2.xyzx
  mad r0.xyz, r0.wwww, r1.xyzx, r2.xyzx
else
  mov r0.xyz, r0.wwww
endif
mov o0.xyzw, r0.xyzw
ret